package com.ctshk.rpc.finance.req.supplier;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 新增对账单req
 */
@Data
@ApiModel(value = "SupplierReconciliationAddReq",description = "新增对账单req")
public class SupplierReconciliationAddReq implements Serializable {

    @ApiModelProperty(value = "对账单ID")
    private Long reconciliationId;

    @NotNull(message = "供应商ID不能为空")
    @ApiModelProperty(value = "供应商ID",required = true)
    private Long supplierId;

    @NotNull(message = "供应商名称不能为空")
    @ApiModelProperty(value = "供应商名称",required = true)
    private String supplierName;

    @NotNull(message = "供应商联系人不能为空")
    @ApiModelProperty(value = "供应商联系人",required = true)
    private String supplierContacts;

    @NotNull(message = "供应商联系电话不能为空")
    @ApiModelProperty(value = "供应商联系电话",required = true)
    private String supplierTelephone;

    @NotNull(message = "供应商联系邮箱不能为空")
    @ApiModelProperty(value = "供应商联系邮箱",required = true)
    private String supplierEmail;

    @NotNull(message = "供应商地址不能为空")
    @ApiModelProperty(value = "供应商地址",required = true)
    private String supplierAddress;

    @NotNull(message = "供应商银行名称不能为空")
    @ApiModelProperty(value = "供应商银行名称",required = true)
    private String supplierBankName;

    @NotNull(message = "供应商银行卡号不能为空")
    @ApiModelProperty(value = "供应商银行卡号",required = true)
    private String supplierBankCard;

    @ApiModelProperty(value = "期望付款时间")
    private LocalDateTime expectPayTime;

    @ApiModelProperty(value = "附件")
    private List<FileJson> filesJson;

    @ApiModelProperty(value = "备注")
    private String remark;

    @NotNull(message = "操作类型不能为空")
    @ApiModelProperty(value = "操作类型(1 保存 2 提交审批)",required = true)
    private Integer type;

    @NotNull(message = "供应商预订单列表不能为空")
    @ApiModelProperty(value = "供应商预订单列表",required = true)
    private List<ReconciliationDetailReq> detailReqList;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

}
